home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Diamond Collection
/
The Diamond Collection (Software Vault)(Digital Impact).ISO
/
cdr04
/
heart14.zip
/
HEART.BAS
< prev
next >
Wrap
BASIC Source File
|
1995-03-08
|
28KB
|
598 lines
10 REM *** HEART.BAS *** WRITTEN BY CHARLES SEA, M.D. ***
15 REM *** INITIALLY ON SEPT. 16, 1994 ***
16 REM *** UPDATE TO 1.4 ON FEB. 11, 1995 ***
20 DEFSTR S-W: DEFINT I-N
30 REM $DYNAMIC
40 N = 1
50 DIM SFNAME(100) AS STRING
60 DIM SLNAME(100) AS STRING
70 DIM SADDR1(100) AS STRING
80 DIM SADDR2(100) AS STRING
90 DIM SCITY(100) AS STRING
100 DIM SST(100) AS STRING
110 DIM SZIP(100) AS STRING
120 DIM SIP(100) AS STRING
130 ON ERROR GOTO 500
500 COLOR 15, 0: CLS : LOCATE 4, 25: COLOR 14, 1: PRINT "┌─────────────────────────────┐": COLOR 15, 0
510 LOCATE 5, 25: COLOR 14, 1: PRINT "│ AMERICAN HEART ROSTER MAKER │": COLOR 15, 0
520 LOCATE 6, 25: COLOR 14, 1: PRINT "└─────────────────────────────┘": COLOR 15, 0
530 LOCATE 7, 25: COLOR 14, 1: PRINT "┌─────────────────────────────┐": COLOR 15, 0
540 LOCATE 8, 25: COLOR 14, 1: PRINT "│ │": COLOR 15, 0
550 LOCATE 9, 25: COLOR 14, 1: PRINT "│ 1. ENTER DATA │": COLOR 15, 0
560 LOCATE 10, 25: COLOR 14, 1: PRINT "│ 2. EDIT DATA │": COLOR 15, 0
570 LOCATE 11, 25: COLOR 14, 1: PRINT "│ 3. PRINT UTILITY │": COLOR 15, 0
580 LOCATE 12, 25: COLOR 14, 1: PRINT "│ 4. FILE UTILITY │": COLOR 15, 0
590 LOCATE 13, 25: COLOR 14, 1: PRINT "│ │": COLOR 15, 0
600 LOCATE 14, 25: COLOR 14, 1: PRINT "└─────────────────────────────┘": COLOR 15, 0
602 LOCATE 15, 25: COLOR 14, 1: PRINT "┌─────────────────────────────┐": COLOR 15, 0
604 LOCATE 16, 25: COLOR 14, 1: PRINT "│ BY │": COLOR 15, 0
606 LOCATE 17, 25: COLOR 14, 1: PRINT "│ CHARLES SEA, M.D., FACEP │": COLOR 15, 0
608 LOCATE 18, 25: COLOR 14, 1: PRINT "│ VERSION 1.4 │": COLOR 15, 0
610 LOCATE 19, 25: COLOR 14, 1: PRINT "│ PRESS <ESC> TO END │": COLOR 15, 0
612 LOCATE 20, 25: COLOR 14, 1: PRINT "│ PRESS <H> FOR INFORMATION │": COLOR 15, 0
614 LOCATE 21, 25: COLOR 14, 1: PRINT "└─────────────────────────────┘": COLOR 15, 0
630 A$ = INKEY$: IF A$ = "" THEN 630
640 IF A$ = "H" OR A$ = "h" THEN 700
650 IF A$ = "1" THEN COLOR 14, 1: GOTO 900
660 IF A$ = "2" THEN COLOR 14, 1: GOTO 1500
670 IF A$ = "3" THEN COLOR 14, 1: GOTO 4000
680 IF A$ = CHR$(27) THEN END
690 IF A$ = "4" THEN COLOR 14, 1: GOTO 2800 ELSE BEEP: GOTO 500
700 COLOR 15, 0: CLS
702 LOCATE 5, 15: PRINT "THIS PROGRAM IS COPYRIGHTED AND MAY NOT BE SOLD -"
704 LOCATE 6, 15: PRINT "IT MAY BE FREELY GIVEN AWAY AS SHAREWARE, BUT MAY"
706 LOCATE 7, 15: PRINT "NOT BE CHANGED IN ANY WAY."
710 LOCATE 9, 15: PRINT "FOR MORE INFORMATION, NEW VERSIONS, RECOMMENDED"
720 LOCATE 10, 15: PRINT "CHANGES, OR SUGGESTIONS THE AUTHOR MAY BE CONTACTED"
730 LOCATE 11, 15: PRINT "AS FOLLOWS:"
740 LOCATE 13, 15: PRINT " LA. MEDSIG (504)-738-5100 (BBS - 7 LINES, 14400 BAUD)"
750 LOCATE 14, 15: PRINT " (504)-738-1044 (VOICE)"
760 LOCATE 15, 15: PRINT " (504)-738-3900 (FAX)"
770 LOCATE 17, 15: PRINT " DR. CHARLES SEA, 8021 BAROCCO DR., HARAHAN, LA 70123"
780 LOCATE 19, 10: PRINT "THIS ROSTER GENERATOR WAS DESIGNED TO ALLOW IMPORTING OF THE FILES"
790 LOCATE 20, 10: PRINT "INTO DATABASES SUCH AS ALPHA4(C) OR OTHER COMMERCIAL SOFTWARE."
795 LOCATE 21, 10: PRINT " DATA IS LIMITED TO 100 PARTICIPANTS WITH THIS SOFTWARE."
800 LOCATE 22, 30: PRINT "PRESS ANY KEY TO CONTINUE"
820 A$ = INKEY$: IF A$ = "" THEN 820 ELSE 500
900 CLS : LOCATE 7, 33: PRINT "DATA ENTRY MENU": LOCATE 9, 30: PRINT "─────────────────────"
910 LOCATE 11, 30: PRINT "1. ENTER COURSE DATA"
920 LOCATE 13, 30: PRINT "2. ENTER STUDENT DATA"
930 LOCATE 15, 30: PRINT "─────────────────────": LOCATE 17, 27: PRINT "<ESC> TO RETURN TO MAIN MENU"
940 A$ = INKEY$: IF A$ = "" THEN 940
950 IF A$ = "1" THEN 980
960 IF A$ = "2" THEN 990
970 IF A$ = CHR$(27) THEN 500 ELSE BEEP: GOTO 940
980 GOSUB 8000: GOTO 900
990 IF N > 1 THEN 1000 ELSE 1070
1000 CLS : LOCATE 12, 31: PRINT N - 1; "RECORD(S) IN FILE !"
1010 LOCATE 14, 33: PRINT "APPEND TO END (Y/N)"
1020 A$ = INKEY$: IF A$ = "" THEN 1020
1030 IF A$ = "Y" OR A$ = "y" THEN 1070
1035 IF A$ = CHR$(27) THEN 500
1040 IF A$ = "N" OR A$ = "n" THEN 500 ELSE BEEP: GOTO 1020
1070 GOSUB 7600: GOSUB 7610: GOSUB 7630: GOSUB 7650: GOSUB 7670: GOSUB 7690: GOSUB 7710: GOSUB 7730: GOSUB 7750
1080 LOCATE 17, 25: PRINT "IS ENTRY CORRECT (Y/N)"
1090 A$ = INKEY$: IF A$ = "" THEN 1090
1100 IF A$ = "Y" OR A$ = "y" THEN N = N + 1: GOTO 1220
1105 IF A$ = CHR$(27) THEN 1252
1110 IF A$ = "N" OR A$ = "n" THEN 1120 ELSE BEEP: GOTO 1090
1120 LOCATE 18, 25: PRINT "ENTER FIELD TO CHANGE (1-8)"
1125 LOCATE 19, 25: PRINT " [0=DELETE RECORD]"
1130 A$ = INKEY$: IF A$ = "" THEN 1130
1140 IF A$ = "0" OR A$ = CHR$(27) THEN 1252
1150 IF A$ = "1" THEN 1260
1160 IF A$ = "2" THEN 1270
1170 IF A$ = "3" THEN 1280
1180 IF A$ = "4" THEN 1290
1190 IF A$ = "5" THEN 1300
1200 IF A$ = "6" THEN 1310
1205 IF A$ = "7" THEN 1320
1210 IF A$ = "8" THEN 1325 ELSE BEEP: GOTO 1130
1220 LOCATE 18, 25: PRINT "ENTER ANOTHER RECORD (Y/N)"
1230 A$ = INKEY$: IF A$ = "" THEN 1230
1240 IF A$ = "Y" OR A$ = "y" THEN 1070
1245 IF A$ = CHR$(27) THEN 1252
1250 IF A$ = "N" OR A$ = "n" THEN 1252 ELSE BEEP: GOTO 1230
1252 OPEN "HEART.BAK" FOR OUTPUT AS #2: L = 1
1253 WRITE #2, SFNAME(L), SLNAME(L), SADDR1(L), SADDR2(L), SCITY(L), SST(L), SZIP(L), SIP(L), WA, WB, WC, WD, WE
1254 L = L + 1
1255 IF L = N THEN CLOSE #2: GOTO 500
1256 GOTO 1253
1260 GOSUB 7610: GOTO 1330
1270 GOSUB 7630: GOTO 1330
1280 GOSUB 7650: GOTO 1330
1290 GOSUB 7670: GOTO 1330
1300 GOSUB 7690: GOTO 1330
1310 GOSUB 7710: GOTO 1330
1320 GOSUB 7730: GOTO 1330
1325 GOSUB 7750: GOTO 1330
1330 LOCATE 18, 25: PRINT " "
1340 LOCATE 19, 25: PRINT " ": GOTO 1080
1500 M = 1: IF N > 1 THEN 1600
1510 CLS
1520 LOCATE 11, 31: PRINT "NO RECORDS IN FILE !"
1530 LOCATE 13, 31: PRINT "PRESS ANY KEY TO CONT."
1540 A$ = INKEY$: IF A$ = "" THEN 1540 ELSE 500
1600 CLS
1605 LOCATE 6, 36: PRINT "RECORD #"; M
1610 LOCATE 8, 22: PRINT "1: FIRST NAME: "; SFNAME(M)
1620 LOCATE 9, 22: PRINT "2: LAST NAME: "; SLNAME(M)
1630 LOCATE 10, 22: PRINT "3: ADDRESS 1: "; SADDR1(M)
1640 LOCATE 11, 22: PRINT "4: ADDRESS 2: "; SADDR2(M)
1650 LOCATE 12, 22: PRINT "5: CITY : "; SCITY(M)
1660 LOCATE 13, 22: PRINT "6: STATE: "; SST(M)
1670 LOCATE 14, 22: PRINT "7: ZIP CODE: "; SZIP(M)
1675 LOCATE 15, 22: PRINT "8: LEVEL: "; SIP(M)
1680 LOCATE 17, 19: PRINT "PRESS (D)ELETE (E)DIT (P)RINT LABEL"
1682 LOCATE 18, 19: PRINT " (N)EXT (B)ACK OR (LEFT/RIGHT) ARROWS"
1683 LOCATE 19, 32: PRINT "(ESC) = TO END"
1684 IF M = N - 1 THEN LOCATE 22, 33: PRINT "LAST RECORD "
1686 IF M = 1 THEN LOCATE 22, 33: PRINT "FIRST RECORD "
1690 A$ = INKEY$: IF A$ = "" THEN 1690
1700 IF A$ = "E" OR A$ = "e" THEN 2300
1702 IF A$ = CHR$(27) THEN 500
1704 IF A$ = "P" OR A$ = "p" THEN 2500
1710 IF A$ = "D" OR A$ = "d" THEN 2000
1720 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(0) + CHR$(77) THEN 1800
1730 IF A$ = "B" OR A$ = "b" OR A$ = CHR$(0) + CHR$(75) THEN 1900 ELSE BEEP: GOTO 1690
1800 M = M + 1
1810 IF M >= N THEN M = N - 1: GOTO 1600
1820 IF M < N THEN 1600
1900 M = M - 1
1910 IF M <= 0 THEN M = 1: GOTO 1600
1920 IF M > 0 THEN 1600
2000 LOCATE 20, 27: PRINT "DELETE THIS RECORD (Y/N)"
2010 A$ = INKEY$: IF A$ = "" THEN 2010
2020 IF A$ = "N" OR A$ = "n" THEN 1600
2025 IF A$ = CHR$(27) THEN 1600
2030 IF A$ = "Y" OR A$ = "y" THEN 2040 ELSE BEEP: GOTO 2010
2040 LOCATE 21, 31: PRINT "ARE YOU SURE (Y/N)"
2050 A$ = INKEY$: IF A$ = "" THEN 2050
2060 IF A$ = "Y" OR A$ = "y" THEN M2 = M: GOTO 2100
2065 IF A$ = CHR$(27) THEN 1600
2070 IF A$ = "N" OR A$ = "n" THEN 1600 ELSE BEEP: GOTO 2050
2100 SFNAME(M) = SFNAME(M + 1)
2110 SLNAME(M) = SLNAME(M + 1)
2120 SADDR1(M) = SADDR1(M + 1)
2130 SADDR2(M) = SADDR2(M + 1)
2140 SCITY(M) = SCITY(M + 1)
2150 SST(M) = SST(M + 1)
2160 SZIP(M) = SZIP(M + 1)
2165 SIP(M) = SIP(M + 1)
2170 M = M + 1
2180 IF M = N THEN N = N - 1 ELSE 2100
2190 IF N <= 1 THEN 1510
2200 IF M2 = N THEN M = M2 - 1 ELSE M = M2
2210 GOTO 1600
2300 LOCATE 19, 25: PRINT "EDIT WHICH FIELD (1-8) <ESC>=END"
2310 A$ = INKEY$: IF A$ = "" THEN 2310
2315 IF A$ = CHR$(27) THEN 1600
2320 IF A$ = "1" THEN 2390
2330 IF A$ = "2" THEN 2400
2340 IF A$ = "3" THEN 2410
2350 IF A$ = "4" THEN 2420
2360 IF A$ = "5" THEN 2430
2370 IF A$ = "6" THEN 2440
2375 IF A$ = "7" THEN 2450
2380 IF A$ = "8" THEN 2460 ELSE BEEP: GOTO 2310
2390 GOSUB 7810: GOTO 1600
2400 GOSUB 7830: GOTO 1600
2410 GOSUB 7850: GOTO 1600
2420 GOSUB 7870: GOTO 1600
2430 GOSUB 7890: GOTO 1600
2440 GOSUB 7910: GOTO 1600
2450 GOSUB 7930: GOTO 1600
2460 GOSUB 7950: GOTO 1600
2500 CLS : LOCATE 11, 25: PRINT "MAKE SURE PRINTER IS ON-LINE";
2510 LOCATE 12, 25: PRINT "AND PAPER IS ALIGNED FOR PRINTING";
2520 LOCATE 14, 25: PRINT " PRINT LABEL (Y/N)"
2530 A$ = INKEY$: IF A$ = "" THEN 2530
2540 IF A$ = "Y" OR A$ = "y" THEN 2560
2550 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN 1600 ELSE BEEP: GOTO 2530
2560 LPRINT : LPRINT TAB(5); SFNAME(M); " "; SLNAME(M)
2570 LPRINT TAB(5); SADDR1(M)
2580 LPRINT TAB(5); SADDR2(M)
2590 LPRINT TAB(5); SCITY(M); ", "; SST(M); " "; SZIP(M): LPRINT
2600 GOTO 1600
2800 CLS
2810 LOCATE 8, 35: PRINT "FILE UTILITY"
2820 LOCATE 9, 33: PRINT "─────────────────"
2830 LOCATE 10, 33: PRINT " 1. INPUT FILE"
2840 LOCATE 11, 33: PRINT " 2. OUTPUT FILE"
2860 LOCATE 12, 33: PRINT "───────────────"
2865 LOCATE 14, 28: PRINT "<ESC> TO RETURN TO MAIN MENU"
2870 A$ = INKEY$: IF A$ = "" THEN 2860
2880 IF A$ = "1" THEN 3000
2890 IF A$ = "2" THEN 3500
2980 IF A$ = "3" OR A$ = CHR$(27) THEN 500 ELSE BEEP: GOTO 2800
3000 CLS
3010 LOCATE 13, 25: PRINT "PRESS <ENTER> TO USE 'HEART.ASC'";
3011 LOCATE 14, 25: PRINT "ENTER '0' TO RETURN TO MAIN MENU"
3012 LOCATE 17, 25: COLOR 14, 4: PRINT "┌─────────────────────────────┐": COLOR 14, 1
3013 LOCATE 18, 25: COLOR 14, 4: PRINT "│ PLEASE NOTE: FOR YOUR │": COLOR 14, 1
3014 LOCATE 19, 25: COLOR 14, 4: PRINT "│ PROTECTION AFTER DATA WAS │": COLOR 14, 1
3015 LOCATE 20, 25: COLOR 14, 4: PRINT "│ ENTERED IT WAS SAVED IN A │": COLOR 14, 1
3016 LOCATE 21, 25: COLOR 14, 4: PRINT "│ FILE CALLED 'HEART.BAK'. │": COLOR 14, 1
3018 LOCATE 22, 25: COLOR 14, 4: PRINT "└─────────────────────────────┘": COLOR 14, 1
3020 LOCATE 11, 25: INPUT "ENTER FILE TO INPUT"; TI$
3022 IF TI$ = "0" THEN 500
3024 N = 1
3026 IF TI$ = "" THEN TI$ = "HEART.ASC"
3030 OPEN TI$ FOR INPUT AS #1
3040 DO WHILE NOT EOF(1)
3050 INPUT #1, SFNAME(N), SLNAME(N), SADDR1(N), SADDR2(N), SCITY(N), SST(N), SZIP(N), SIP(N), WA, WB, WC, WD, WE
3060 N = N + 1
3070 LOOP
3080 CLOSE #1: GOTO 500
3500 CLS
3510 LOCATE 13, 25: PRINT "PRESS <ENTER> TO USE 'HEART.ASC'";
3512 LOCATE 14, 25: PRINT "ENTER '0' TO RETURN TO MAIN MENU"
3513 LOCATE 17, 25: COLOR 14, 4: PRINT "┌─────────────────────────────┐": COLOR 14, 1
3514 LOCATE 18, 25: COLOR 14, 4: PRINT "│ PLEASE NOTE: FOR YOUR │": COLOR 14, 1
3515 LOCATE 19, 25: COLOR 14, 4: PRINT "│ PROTECTION AFTER DATA WAS │": COLOR 14, 1
3516 LOCATE 20, 25: COLOR 14, 4: PRINT "│ ENTERED IT WAS SAVED IN A │": COLOR 14, 1
3517 LOCATE 21, 25: COLOR 14, 4: PRINT "│ FILE CALLED 'HEART.BAK'. │": COLOR 14, 1
3518 LOCATE 22, 25: COLOR 14, 4: PRINT "└─────────────────────────────┘": COLOR 14, 1
3520 LOCATE 11, 25: INPUT "ENTER FILE TO OUTPUT"; TO$
3522 IF TI$ = "0" THEN 500
3524 L = 1
3526 IF TO$ = "" THEN TO$ = "HEART.ASC"
3530 OPEN TO$ FOR OUTPUT AS #2
3540 WRITE #2, SFNAME(L), SLNAME(L), SADDR1(L), SADDR2(L), SCITY(L), SST(L), SZIP(L), SIP(L), WA, WB, WC, WD, WE
3550 L = L + 1
3560 IF L = N THEN CLOSE #2: GOTO 500
3570 GOTO 3540
4000 CLS
4010 LOCATE 8, 35: PRINT "PRINT MENU"
4020 LOCATE 9, 33: PRINT "─────────────────"
4030 LOCATE 10, 33: PRINT " 1. PRINT ROSTER"
4040 LOCATE 11, 33: PRINT " 2. PRINT CARDS"
4050 LOCATE 12, 33: PRINT " 3. PRINT LABELS"
4060 LOCATE 13, 33: PRINT "─────────────────"
4065 LOCATE 15, 28: PRINT "<ESC> TO RETURN TO MAIN MENU"
4070 A$ = INKEY$: IF A$ = "" THEN 4070
4080 IF A$ = "1" THEN 4200
4090 IF A$ = "2" THEN 4500
4100 IF A$ = "3" THEN 5000
4110 IF A$ = CHR$(27) THEN 500 ELSE BEEP: GOTO 4070
4190 REM PRINTING ROSTER
4200 CLS : L = 1
4201 PRINT TAB(30); WA; " ROSTER": PRINT
4202 PRINT TAB(5); "DATE OF COURSE: "; WC; TAB(45); "LOCATION: "; WB
4203 PRINT TAB(5); "COURSE DIR: "; WD; TAB(45); "COURSE CO-ORD: "; WE: PRINT
4205 PRINT TAB(5); "NAME"; TAB(25); "ADDRESS"; TAB(50); "CITY"; TAB(67); "ST"; TAB(70); "ZIP LVL"
4207 PRINT TAB(5); STRING$(19, "-"); TAB(25); STRING$(20, "-"); TAB(50); STRING$(15, "-"); TAB(67); "--"; TAB(70); "--- ---"
4210 PRINT L; " "; SFNAME(L); " "; SLNAME(L); TAB(25); SADDR1(L); TAB(50); SCITY(L); TAB(67); SST(L); TAB(70); SZIP(L); " "; SIP(L)
4215 PRINT TAB(25); SADDR2(L)
4220 L = L + 1
4225 IF L = N OR L = 6 THEN 4230 ELSE 4210
4230 PRINT : PRINT TAB(10); "THIS IS WHAT THE PRINTOUT WILL LOOK LIKE - CONTINUE (Y/N)"
4232 A$ = INKEY$: IF A$ = "" THEN 4232
4234 IF A$ = "Y" OR A$ = "y" THEN 4240
4236 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN 4000 ELSE BEEP: GOTO 4232
4240 CLS : L = 1: LOCATE 11, 25: PRINT "MAKE SURE PRINTER IS ON-LINE";
4250 LOCATE 12, 25: PRINT "AND PAPER IS ALIGNED FOR PRINTING";
4260 LOCATE 14, 30: PRINT "READY TO PRINT (Y/N)";
4270 A$ = INKEY$: IF A$ = "" THEN 4270
4280 IF A$ = "Y" OR A$ = "y" THEN 4300
4290 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN 500 ELSE BEEP: GOTO 4270
4300 LPRINT TAB(30); WA; " ROSTER": LPRINT
4302 LPRINT TAB(5); "DATE OF COURSE: "; WC; TAB(45); "LOCATION: "; WB
4304 LPRINT TAB(5); "COURSE DIR: "; WD; TAB(45); "COURSE CO-ORD: "; WE: LPRINT
4306 LPRINT TAB(5); "NAME"; TAB(25); "ADDRESS"; TAB(50); "CITY"; TAB(67); "ST"; TAB(70); "ZIP LVL"
4308 LPRINT TAB(5); STRING$(19, "-"); TAB(25); STRING$(20, "-"); TAB(50); STRING$(15, "-"); TAB(67); "--"; TAB(70); "--- ---"
4310 LPRINT L; " "; SFNAME(L); " "; SLNAME(L); TAB(25); SADDR1(L); TAB(50); SCITY(L); TAB(67); SST(L); TAB(70); SZIP(L); " "; SIP(L)
4320 LPRINT TAB(25); SADDR2(L)
4330 L = L + 1
4340 IF L = N THEN LPRINT CHR$(12): GOTO 500
4345 IF L = 26 THEN LPRINT CHR$(12): GOTO 4300
4350 GOTO 4310
4490 REM PRINTING AHA CARDS
4500 OPEN "HEART.DAT" FOR INPUT AS #1
4502 INPUT #1, UA, UB, UC, UD
4504 CLOSE #1
4510 CLS : LOCATE 12, 15: PRINT "USE CALCULATED DATES BASED UPON COURSE DATE (Y/N)"
4512 A$ = INKEY$: IF A$ = "" THEN 4512
4514 IF A$ = CHR$(27) THEN 4000
4516 IF A$ = "Y" OR A$ = "y" THEN 4522
4518 IF A$ = "N" OR A$ = "n" THEN 4530 ELSE BEEP: GOTO 4512
4522 UE = RIGHT$(WC, 2): IF UE = "" THEN 4540 ELSE UB = WC
4524 NS = VAL(UE) + 2: UF = RIGHT$(STR$(NS), 2)
4526 UG = LEFT$(WC, 6): UC = UG + UF
4530 CLS : L = 1
4540 LOCATE 8, 20: PRINT "1:NAME OF AMERICAN HEART ASSOCIATION: "; : LOCATE 10, 45: PRINT UA
4550 LOCATE 12, 20: PRINT "2:ISSUE DATE: "; : LOCATE 12, 45: PRINT UB
4560 LOCATE 14, 20: PRINT "3:RENEWAL DATE: "; : LOCATE 14, 45: PRINT UC
4565 LOCATE 16, 20: PRINT "4:CARD IS PEDIATRIC TYPE (Y/N): "; : LOCATE 16, 52: PRINT UD
4570 LOCATE 19, 30: PRINT "IS THIS CORRECT (Y/N)"
4580 A$ = INKEY$: IF A$ = "" THEN 4580
4582 IF A$ = "Y" OR A$ = "y" THEN CLS : GOTO 4670
4584 IF A$ = CHR$(27) THEN 4000
4586 IF A$ = "N" OR A$ = "n" THEN 4588 ELSE BEEP: GOTO 4580
4588 LOCATE 20, 30: PRINT "ENTER NUMBER TO CORRECT (1-4)"
4589 LOCATE 21, 35: PRINT "<ESC> TO RETURN": LOCATE 22, 35: PRINT "<ENTER> TO STAY THE SAME"
4590 A$ = INKEY$: IF A$ = "" THEN 4590
4592 IF A$ = "1" THEN 4602
4594 IF A$ = "2" THEN 4606
4596 IF A$ = "3" THEN 4610
4598 IF A$ = "4" THEN 4614
4600 IF A$ = CHR$(27) THEN 4530 ELSE BEEP: GOTO 4590
4602 LOCATE 8, 20: PRINT "1:ENTER NAME OF AMERICAN HEART ASSOCIATION:"
4604 MX = 10: MY = 45: MZ = 19: GOSUB 7000: IF T$ = "" THEN 4620 ELSE UA = T$: GOTO 4620
4606 LOCATE 12, 20: PRINT "2:ISSUE DATE:"
4608 MX = 12: MY = 45: MZ = 8: GOSUB 7000: IF T$ = "" THEN 4620 ELSE UB = T$: GOTO 4620
4610 LOCATE 14, 20: PRINT "3:RENEWAL DATE:"
4612 MX = 14: MY = 45: MZ = 8: GOSUB 7000: IF T$ = "" THEN 4620 ELSE UC = T$: GOTO 4620
4614 LOCATE 16, 20: PRINT "4:CARD IS PEDIATRIC TYPE (Y/N): "
4616 MX = 16: MY = 52: MZ = 1: GOSUB 7000: IF T$ = "" THEN 4620 ELSE UD = T$: GOTO 4620
4620 OPEN "HEART.DAT" FOR OUTPUT AS #1
4622 WRITE #1, UA, UB, UC, UD
4624 CLOSE #1
4626 GOTO 4530
4670 PRINT : PRINT : PRINT : PRINT TAB(58); SFNAME(L); " "; SLNAME(L): PRINT
4672 PRINT : IF UD = "N" OR UD = "n" THEN PRINT TAB(58); WA ELSE PRINT
4674 PRINT TAB(55); UB; TAB(72); UC
4676 PRINT : PRINT : PRINT : PRINT TAB(61); UA
4678 PRINT : PRINT TAB(15); SFNAME(L); " "; SLNAME(L); TAB(62); WD
4680 PRINT TAB(15); SADDR1(L)
4682 PRINT TAB(15); SADDR2(L)
4684 PRINT TAB(15); SCITY(L); ", "; SST(L); " "; SZIP(L)
4686 L = L + 1
4690 IF L = N OR L = 2 THEN 4700 ELSE 4670
4700 PRINT : PRINT TAB(10); "THIS IS WHAT THE PRINTOUT WILL LOOK LIKE - CONTINUE (Y/N)"
4710 A$ = INKEY$: IF A$ = "" THEN 4710
4720 IF A$ = "Y" OR A$ = "y" THEN 4740
4730 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN 4000 ELSE BEEP: GOTO 4710
4740 CLS : L = 1: LOCATE 11, 25: PRINT "MAKE SURE PRINTER IS ON-LINE";
4750 LOCATE 12, 25: PRINT "AND CARDS ARE ALIGNED FOR PRINTING";
4760 LOCATE 14, 25: PRINT "PRINT ONE ALIGNMENT CARD (Y/N)"
4770 A$ = INKEY$: IF A$ = "" THEN 4770
4780 IF A$ = "Y" OR A$ = "y" THEN 4800
4790 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN 4860 ELSE BEEP: GOTO 4770
4800 LPRINT : LPRINT : LPRINT : LPRINT TAB(58); "XXXXXXXX XXXXXXXXXXXX": LPRINT
4802 LPRINT : IF UD = "N" OR UD = "n" THEN LPRINT TAB(58); "XXXXXXXXXXXXXXXXXXXX" ELSE LPRINT
4804 LPRINT TAB(53); "XX/XX/XX"; TAB(70); "XX/XX/XX"
4806 LPRINT : LPRINT : LPRINT TAB(61); "XXXXXXXXXXXXXXXXXXX"
4808 LPRINT : LPRINT TAB(15); "XXXXXXXXX XXXXXXXXXX"; TAB(59); "XXXXXXXXXXXXXXXXXXX"
4810 LPRINT TAB(15); "XXXXXXXXXXXXXXXXXXX"
4812 LPRINT TAB(15); "XXXXXXXXXXXXXXXXXXX"
4814 LPRINT TAB(15); "XXXXXXXXXXXXXXX"; ", "; "XX"; " "; "XXXXX"
4816 LPRINT : LPRINT : LPRINT : LPRINT : LPRINT : LPRINT : LPRINT : LPRINT
4820 LOCATE 14, 25: PRINT "DOES THIS CARD LOOK OK (Y/N) ";
4830 A$ = INKEY$: IF A$ = "" THEN 4830
4840 IF A$ = "Y" OR A$ = "y" THEN 4860
4850 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN 4740 ELSE BEEP: GOTO 4830
4860 LOCATE 14, 25: PRINT "READY TO PRINT ALL CARDS (Y/N)";
4870 A$ = INKEY$: IF A$ = "" THEN 4870
4880 IF A$ = "Y" OR A$ = "y" THEN 4900
4890 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN 500 ELSE BEEP: GOTO 4870
4900 LPRINT : LPRINT : LPRINT : LPRINT TAB(58); SFNAME(L); " "; SLNAME(L): LPRINT
4902 LPRINT : IF UD = "N" OR UD = "n" THEN LPRINT TAB(58); WA ELSE LPRINT
4904 LPRINT TAB(53); UB; TAB(70); UC
4906 LPRINT : LPRINT : LPRINT TAB(61); UA
4908 LPRINT : LPRINT TAB(15); SFNAME(L); " "; SLNAME(L); TAB(59); WD
4910 LPRINT TAB(15); SADDR1(L)
4912 LPRINT TAB(15); SADDR2(L)
4914 LPRINT TAB(15); SCITY(L); ", "; SST(L); " "; SZIP(L)
4916 LPRINT : LPRINT : LPRINT : LPRINT : LPRINT : LPRINT : LPRINT : LPRINT
4918 L = L + 1
4920 IF L = N THEN 500
4930 GOTO 4900
4990 REM PRINTING LABELS
5000 CLS : L = 1
5010 PRINT : PRINT : PRINT TAB(5); SFNAME(L); " "; SLNAME(L)
5020 PRINT TAB(5); SADDR1(L)
5030 PRINT TAB(5); SADDR2(L)
5040 PRINT TAB(5); SCITY(L); ", "; SST(L); " "; SZIP(L)
5050 L = L + 1
5060 IF L = N OR L = 3 THEN 5070 ELSE 5010
5070 PRINT : PRINT TAB(10); "THIS IS WHAT THE PRINTOUT WILL LOOK LIKE - CONTINUE (Y/N)"
5080 A$ = INKEY$: IF A$ = "" THEN 5080
5090 IF A$ = "Y" OR A$ = "y" THEN 5110
5100 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN 4000 ELSE BEEP: GOTO 5080
5110 CLS : L = 1: LOCATE 11, 25: PRINT "MAKE SURE PRINTER IS ON-LINE";
5120 LOCATE 12, 25: PRINT "AND PAPER IS ALIGNED FOR PRINTING";
5130 LOCATE 14, 25: PRINT "PRINT ONE ALIGNMENT LABEL (Y/N)"
5140 A$ = INKEY$: IF A$ = "" THEN 5140
5150 IF A$ = "Y" OR A$ = "y" THEN 5170
5160 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN 5250 ELSE BEEP: GOTO 5140
5170 LPRINT : LPRINT TAB(5); "XXXXXXXXX XXXXXXXXXX"
5180 LPRINT TAB(5); "XXXXXXXXXXXXXXXXXXX"
5190 LPRINT TAB(5); "XXXXXXXXXXXXXXXXXXX"
5200 LPRINT TAB(5); "XXXXXXXXXXXXXXX"; ", "; "XX"; " "; "XXXXX": LPRINT
5210 LOCATE 14, 25: PRINT "DOES THIS CARD LOOK OK (Y/N) ";
5220 A$ = INKEY$: IF A$ = "" THEN 5220
5230 IF A$ = "Y" OR A$ = "y" THEN 5250
5240 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN 5110 ELSE BEEP: GOTO 5220
5250 LOCATE 14, 25: PRINT "READY TO PRINT ALL LABELS (Y/N)";
5260 A$ = INKEY$: IF A$ = "" THEN 5260
5270 IF A$ = "Y" OR A$ = "y" THEN 5290
5280 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN 500 ELSE BEEP: GOTO 5260
5290 LPRINT : LPRINT TAB(5); SFNAME(L); " "; SLNAME(L)
5300 LPRINT TAB(5); SADDR1(L)
5310 LPRINT TAB(5); SADDR2(L)
5320 LPRINT TAB(5); SCITY(L); ", "; SST(L); " "; SZIP(L): LPRINT
5330 L = L + 1
5340 IF L = N THEN 500 ELSE 5290
6990 REM GOSUB SUBROUTINES - LINE EDITOR
6991 REM MX = ROWS
6992 REM MY = COLUMNS
6993 REM MZ = MAXIMUM STRING LENGTH
7000 LOCATE MX, MY: MT = 1: T$ = ""
7010 COLOR 14, 0
7020 T2$ = SPACE$(MZ)
7030 PRINT T2$;
7040 LOCATE MX, MY
7050 A$ = INKEY$: IF A$ = "" THEN 7050
7060 IF ASC(A$) = 13 OR A$ = CHR$(27) THEN 7500
7070 IF ASC(A$) = 8 THEN 7200
7080 IF ASC(A$) < 32 OR ASC(A$) > 122 THEN BEEP: GOTO 7050
7090 MT = MT + 1
7100 IF MT = MZ + 2 THEN BEEP: T$ = LEFT$(T$, MT - 1): MT = MT - 1: GOTO 7050
7110 T$ = T$ + A$: LOCATE MX, MY: PRINT T$; : GOTO 7050
7200 IF MT < 2 THEN BEEP: MT = 2
7205 T$ = LEFT$(T$, MT - 2)
7210 LOCATE MX, MY
7220 PRINT SPACE$(MZ)
7230 LOCATE MX, MY
7240 PRINT T$;
7250 MT = MT - 1
7270 GOTO 7050
7500 T$ = RTRIM$(T$)
7510 LOCATE MX, MY: COLOR 14, 1
7520 PRINT SPACE$(MZ)
7530 LOCATE MX, MY
7540 PRINT T$;
7550 RETURN
7590 REM GOSUB SUBROUTINES - DATA EDITOR - N VARIABLE
7600 CLS : LOCATE 6, 24: PRINT "ENTER ROSTER DATA - RECORD #"; N: RETURN
7610 LOCATE 8, 22: PRINT "1: FIRST NAME:"
7620 MX = 8: MY = 37: MZ = 20: GOSUB 7000
7625 IF T$ <> "" THEN SFNAME(N) = T$: RETURN ELSE RETURN
7630 LOCATE 9, 22: PRINT "2: LAST NAME:"
7640 MX = 9: MY = 37: MZ = 20: GOSUB 7000
7645 IF T$ <> "" THEN SLNAME(N) = T$: RETURN ELSE RETURN
7650 LOCATE 10, 22: PRINT "3: ADDRESS 1:"
7660 MX = 10: MY = 37: MZ = 25: GOSUB 7000
7665 IF T$ <> "" THEN SADDR1(N) = T$: RETURN ELSE RETURN
7670 LOCATE 11, 22: PRINT "4: ADDRESS 2:"
7680 MX = 11: MY = 37: MZ = 25: GOSUB 7000
7685 IF T$ <> "" THEN SADDR2(N) = T$: RETURN ELSE RETURN
7690 LOCATE 12, 22: PRINT "5: CITY :"
7700 MX = 12: MY = 37: MZ = 20: GOSUB 7000
7705 IF T$ <> "" THEN SCITY(N) = T$: RETURN ELSE RETURN
7710 LOCATE 13, 22: PRINT "6: STATE:"
7720 MX = 13: MY = 37: MZ = 2: GOSUB 7000
7725 IF T$ <> "" THEN SST(N) = T$: RETURN ELSE RETURN
7730 LOCATE 14, 22: PRINT "7: ZIP CODE:"
7740 MX = 14: MY = 37: MZ = 5: GOSUB 7000
7745 IF T$ <> "" THEN SZIP(N) = T$: RETURN ELSE RETURN
7750 LOCATE 15, 22: PRINT "8: LEVEL:": GOSUB 9200
7760 MX = 15: MY = 37: MZ = 2: GOSUB 7000: GOSUB 9300
7765 IF T$ <> "" THEN SIP(N) = T$: RETURN ELSE RETURN
7790 REM - GOSUB SUBROUTINE - M VARIABLE
7810 LOCATE 8, 22: PRINT "1: FIRST NAME:"
7820 MX = 8: MY = 37: MZ = 20: GOSUB 7000
7825 IF T$ <> "" THEN SFNAME(M) = T$: RETURN ELSE RETURN
7830 LOCATE 9, 22: PRINT "2: LAST NAME:"
7840 MX = 9: MY = 37: MZ = 20: GOSUB 7000
7845 IF T$ <> "" THEN SLNAME(M) = T$: RETURN ELSE RETURN
7850 LOCATE 10, 22: PRINT "3: ADDRESS 1:"
7860 MX = 10: MY = 37: MZ = 25: GOSUB 7000
7865 IF T$ <> "" THEN SADDR1(M) = T$: RETURN ELSE RETURN
7870 LOCATE 11, 22: PRINT "4: ADDRESS 2:"
7880 MX = 11: MY = 37: MZ = 25: GOSUB 7000
7885 IF T$ <> "" THEN SADDR2(M) = T$: RETURN ELSE RETURN
7890 LOCATE 12, 22: PRINT "5: CITY :"
7800 MX = 12: MY = 37: MZ = 20: GOSUB 7000
7805 IF T$ <> "" THEN SCITY(M) = T$: RETURN ELSE RETURN
7910 LOCATE 13, 22: PRINT "6: STATE:"
7920 MX = 13: MY = 37: MZ = 2: GOSUB 7000
7925 IF T$ <> "" THEN SST(M) = T$: RETURN ELSE RETURN
7930 LOCATE 14, 22: PRINT "7: ZIP CODE:"
7940 MX = 14: MY = 37: MZ = 5: GOSUB 7000
7945 IF T$ <> "" THEN SZIP(M) = T$: RETURN ELSE RETURN
7950 LOCATE 15, 22: PRINT "8: LEVEL:": GOSUB 9200
7960 MX = 15: MY = 37: MZ = 2: GOSUB 7000: GOSUB 9300
7965 IF T$ <> "" THEN SIP(M) = T$: RETURN ELSE RETURN
7990 REM GOSUB ROUTINE - ADD COURSE DATA
8000 IF WA = "" AND WB = "" THEN 8010 ELSE 8400
8010 CLS : LOCATE 9, 22: PRINT "1: TYPE OF COURSE:": GOSUB 9000
8020 MX = 9: MY = 46: MZ = 20: GOSUB 7000: WA = T$: GOSUB 9100
8030 LOCATE 10, 22: PRINT "2: COURSE LOCATION:"
8040 MX = 10: MY = 46: MZ = 25: GOSUB 7000: WB = T$
8050 LOCATE 11, 22: PRINT "3: COURSE DATE:"
8060 MX = 11: MY = 46: MZ = 8: GOSUB 7000: WC = T$
8070 LOCATE 12, 22: PRINT "4: COURSE DIRECTOR:"
8080 MX = 12: MY = 46: MZ = 25: GOSUB 7000: WD = T$
8090 LOCATE 13, 22: PRINT "5: COURSE CO-ORDINATOR:"
8100 MX = 13: MY = 46: MZ = 25: GOSUB 7000: WE = T$
8110 LOCATE 15, 25: PRINT "IS ENTRY CORRECT (Y/N)"
8120 A$ = INKEY$: IF A$ = "" THEN 8120
8130 IF A$ = "Y" OR A$ = "y" THEN RETURN
8132 IF A$ = CHR$(27) THEN 500
8140 IF A$ = "N" OR A$ = "n" THEN 8150 ELSE BEEP: GOTO 8120
8150 LOCATE 16, 25: PRINT "ENTER FIELD TO CHANGE (1-5)"
8160 A$ = INKEY$: IF A$ = "" THEN 8160
8162 IF A$ = CHR$(27) THEN 8400
8170 IF A$ = "1" THEN 8220
8180 IF A$ = "2" THEN 8240
8190 IF A$ = "3" THEN 8260
8200 IF A$ = "4" THEN 8280
8210 IF A$ = "5" THEN 8300 ELSE BEEP: GOTO 8160
8220 LOCATE 9, 22: PRINT "1: TYPE OF COURSE:": GOSUB 9000
8230 MX = 9: MY = 46: MZ = 20: GOSUB 7000: GOSUB 9100
8235 IF T$ <> "" THEN WA = T$: GOTO 8320 ELSE 8400
8240 LOCATE 10, 22: PRINT "2: COURSE LOCATION:"
8250 MX = 10: MY = 46: MZ = 25: GOSUB 7000
8255 IF T$ <> "" THEN WB = T$: GOTO 8320 ELSE 8400
8260 LOCATE 11, 22: PRINT "3: COURSE DATE:"
8270 MX = 11: MY = 46: MZ = 8: GOSUB 7000
8275 IF T$ <> "" THEN WC = T$: GOTO 8320 ELSE 8400
8280 LOCATE 12, 22: PRINT "4: COURSE DIRECTOR:"
8290 MX = 12: MY = 46: MZ = 20: GOSUB 7000
8295 IF T$ <> "" THEN WD = T$: GOTO 8320 ELSE 8400
8300 LOCATE 13, 22: PRINT "5: COURSE CO-ORDINATOR:"
8310 MX = 13: MY = 46: MZ = 25: GOSUB 7000
8315 IF T$ <> "" THEN WE = T$: GOTO 8320 ELSE 8400
8320 LOCATE 16, 25: PRINT " ": GOTO 8120
8400 CLS
8410 CLS : LOCATE 9, 22: PRINT "1: TYPE OF COURSE:"
8420 LOCATE 9, 46: PRINT WA
8430 LOCATE 10, 22: PRINT "2: COURSE LOCATION:"
8440 LOCATE 10, 46: PRINT WB
8450 LOCATE 11, 22: PRINT "3: COURSE DATE:"
8460 LOCATE 11, 46: PRINT WC
8470 LOCATE 12, 22: PRINT "4: COURSE DIRECTOR:"
8480 LOCATE 12, 46: PRINT WD
8490 LOCATE 13, 22: PRINT "5: COURSE CO-ORDINATOR:"
8500 LOCATE 13, 46: PRINT WE
8510 GOTO 8110
9000 LOCATE 14, 55: PRINT "┌────────────────────┐"
9010 LOCATE 15, 55: PRINT "│PEDIATRIC B.C.L.S. │"
9020 LOCATE 16, 55: PRINT "│HEALTH CARE PROVIDER│"
9030 LOCATE 17, 55: PRINT "│A.C.L.S. PROVIDER │"
9040 LOCATE 18, 55: PRINT "│A.C.L.S. INSTRUCTOR │"
9050 LOCATE 19, 55: PRINT "│P.A.L.S. PROVIDER │"
9060 LOCATE 20, 55: PRINT "│P.A.L.S. INSTRUCTOR │"
9070 LOCATE 21, 55: PRINT "└────────────────────┘"
9080 RETURN
9100 LOCATE 14, 55: PRINT " "
9110 LOCATE 15, 55: PRINT " "
9120 LOCATE 16, 55: PRINT " "
9130 LOCATE 17, 55: PRINT " "
9140 LOCATE 18, 55: PRINT " "
9150 LOCATE 19, 55: PRINT " "
9160 LOCATE 20, 55: PRINT " "
9170 LOCATE 21, 55: PRINT " "
9180 RETURN
9200 LOCATE 16, 60: PRINT "┌─────────────┐"
9210 LOCATE 17, 60: PRINT "│IP=INSTRUCTOR│"
9220 LOCATE 18, 60: PRINT "│ POTENTIAL │"
9230 LOCATE 19, 60: PRINT "│CP=COMPLETE │"
9240 LOCATE 20, 60: PRINT "│ PROVIDER │"
9250 LOCATE 21, 60: PRINT "│NC=NOT │"
9260 LOCATE 22, 60: PRINT "│ COMPLETE │"
9270 LOCATE 23, 60: PRINT "└─────────────┘"
9280 RETURN
9300 LOCATE 16, 60: PRINT " "
9310 LOCATE 17, 60: PRINT " "
9320 LOCATE 18, 60: PRINT " "
9330 LOCATE 19, 60: PRINT " "
9340 LOCATE 20, 60: PRINT " "
9350 LOCATE 21, 60: PRINT " "
9360 LOCATE 22, 60: PRINT " "
9370 LOCATE 23, 60: PRINT " "
9380 RETURN